package siac.com.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import siac.com.configuracao.ConexaoHibernate;
import siac.com.entity.CadEmpresa;

public class CadEmpresaDao extends AbstractHibernateDao<CadEmpresa> {

	public CadEmpresaDao() {
		super(CadEmpresa.class);
	}

	@Override
	protected Session getSession() {
		return ConexaoHibernate.getSessionFactory().getCurrentSession();
	}

	public List<CadEmpresa> findCode(Object code) {
		Query query = (Query) this.getSession().getNamedQuery(
				"CadEmpresa.findByCode");
		query.setParameter("nif", code);
		return query.list();
	}

	public List<CadEmpresa> findName(Object name) {
		Query query = (Query) this.getSession().getNamedQuery(
				"CadEmpresa.findByName");
		query.setParameter("name", name);
		return query.list();
	}

	public List<CadEmpresa> findStatus(Object status) {
		Query query = (Query) this.getSession().getNamedQuery(
				"CadEmpresa.findByStatus");
		query.setParameter("status", status);
		return query.list();
	}

	public List<CadEmpresa> findByLocalEscritorio(Object localEscritorio) {
		Query query = (Query) this.getSession().getNamedQuery(
				"CadEmpresa.findByLocalEscritorio");
		query.setParameter("localEscritorio", localEscritorio);
		return query.list();
	}

	public List<CadEmpresa> findByRepresentante(Object representante) {
		Query query = (Query) this.getSession().getNamedQuery(
				"CadEmpresa.findByRepresentante");
		query.setParameter("representante", representante);
		return query.list();
	}
}
